package com.palmind.parser.tags.factory;

import com.palmind.parser.tags.AbstractTag;
import com.palmind.parser.tags.ArrowLinkTag;
import com.palmind.parser.tags.AttributeLayoutTag;
import com.palmind.parser.tags.AttributeTag;
import com.palmind.parser.tags.CloudTag;
import com.palmind.parser.tags.FontTag;
import com.palmind.parser.tags.HookTag;
import com.palmind.parser.tags.IconTag;
import com.palmind.parser.tags.NodeTag;

public class TagFactory {
	public static final AbstractTag createABean(String tagName) {
		int type = AbstractTag.getTagType(tagName);
		switch (type) {
		case AbstractTag.NODE_TAG:
			return new NodeTag();
		case AbstractTag.FONT_TAG:
			return new FontTag();
		case AbstractTag.ICON_TAG:
			return new IconTag();
		case AbstractTag.ATTRIBUTE_TAG:
			return new AttributeTag();
		case AbstractTag.ATTRIBUTE_LAYOUT_TAG:
			return new AttributeLayoutTag();
		case AbstractTag.HOOK_TAG:
			return new HookTag();
		case AbstractTag.ARROW_LINK_TAG:
			return new ArrowLinkTag();
		case AbstractTag.CLOUD_TAG:
			return new CloudTag();
		case AbstractTag.RICH_CONTENT_TAG:
			// TODO create a rich_content_tag
		default:
			return null;
		}
	}
}
